<html>
<head><meta charset="utf-8"><title>weekly meeting November 28 · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html">weekly meeting November 28</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="148740775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148740775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148740775">(Nov 28 2018 at 20:28)</a>:</h4>
<p>hi <span class="user-group-mention" data-user-group-id="491">@WG-compiler-nll</span> ; the weekly meeting will be starting in ... gee about two minutes; sorry for not providing more of a heads up</p>



<a name="148740941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148740941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148740941">(Nov 28 2018 at 20:31)</a>:</h4>
<p>(some quick triage; I just categorized <a href="https://github.com/rust-lang/rust/issues/56254" target="_blank" title="https://github.com/rust-lang/rust/issues/56254">#56254</a> as NLL-sound ...)</p>



<a name="148740957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148740957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148740957">(Nov 28 2018 at 20:32)</a>:</h4>
<p>I don't know what we're doing right now about milestone assignments so I'll leave that item on the standing agenda alone</p>



<a name="148741026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741026">(Nov 28 2018 at 20:32)</a>:</h4>
<p>and the <a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AA-NLL+-label%3ANLL-deferred+-label%3ANLL-fixed-by-NLL+no%3Aassignee+milestone%3A%22Rust+2018+Release%22" target="_blank" title="https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AA-NLL+-label%3ANLL-deferred+-label%3ANLL-fixed-by-NLL+no%3Aassignee+milestone%3A%22Rust+2018+Release%22">unassigned link</a> doesn't have anyone listed on it, but that might be a sign that we need to fix some milestones. Or maybe all is well.</p>



<a name="148741038"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741038" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741038">(Nov 28 2018 at 20:33)</a>:</h4>
<p><span class="emoji emoji-1f44b" title="wave">:wave:</span></p>



<a name="148741048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741048">(Nov 28 2018 at 20:33)</a>:</h4>
<p>(maybe we've removed everything from the one remaining milestone since its all linked to the edition, and so we need to use a different methodology for triage now....)</p>



<a name="148741067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741067">(Nov 28 2018 at 20:34)</a>:</h4>
<p>So what should we talk about today?</p>



<a name="148741120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741120">(Nov 28 2018 at 20:34)</a>:</h4>
<p>I've been kind of out of it last few days owing to illness but I have a few things on my mind :)</p>



<a name="148741126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741126">(Nov 28 2018 at 20:34)</a>:</h4>
<p>There are 7 open issues tagged as NLL-sound</p>



<a name="148741130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741130">(Nov 28 2018 at 20:34)</a>:</h4>
<p>5 open issues tagged as NLL-complete</p>



<a name="148741154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741154">(Nov 28 2018 at 20:35)</a>:</h4>
<p>(I'm not trying to do anything clever with filtering out NLL-deferred etc though right now)</p>



<a name="148741159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741159">(Nov 28 2018 at 20:35)</a>:</h4>
<p>41 open issues tagged as NLL-deferred</p>



<a name="148741171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741171">(Nov 28 2018 at 20:35)</a>:</h4>
<p>definitely one of the big questions has been how to prioritize</p>



<a name="148741223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741223">(Nov 28 2018 at 20:36)</a>:</h4>
<p>I tagged <a href="https://github.com/rust-lang/rust/issues/54943" target="_blank" title="https://github.com/rust-lang/rust/issues/54943">#54943</a> as I-needs-decision back in mid-october</p>



<a name="148741227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741227">(Nov 28 2018 at 20:36)</a>:</h4>
<p>I think in a previous meeting we kind of broke down into a few buckets of "things to do going forward"...</p>
<ul>
<li>Fix bugs in what we have</li>
<li>Port code over to using NLL borrow check that doesn't use it today</li>
<li>Experiment with extended polonius support</li>
</ul>
<p>was sort of my breakdown</p>



<a name="148741241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741241">(Nov 28 2018 at 20:37)</a>:</h4>
<p>I feel like item 2 is probably worth deferring a bit. I think fixing bugs is good :)</p>



<a name="148741243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741243">(Nov 28 2018 at 20:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> you removed <a href="https://github.com/rust-lang/rust/issues/54943" target="_blank" title="https://github.com/rust-lang/rust/issues/54943">#54943</a> from the release milestone. But the comment you left leads me to think that its <em>still</em> I-needs-decision ... its just not a high priority decision?</p>



<a name="148741245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741245">(Nov 28 2018 at 20:37)</a>:</h4>
<blockquote>
<p>I tagged <a href="https://github.com/rust-lang/rust/issues/54943" target="_blank" title="https://github.com/rust-lang/rust/issues/54943">#54943</a> as I-needs-decision back in mid-october</p>
</blockquote>
<p>That's 95% done now, see the topic here for latest updates on it.</p>



<a name="148741250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741250">(Nov 28 2018 at 20:37)</a>:</h4>
<p>okay</p>



<a name="148741252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741252">(Nov 28 2018 at 20:37)</a>:</h4>
<p>yeah I think we more-or-less decided "might as well fix"</p>



<a name="148741258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741258">(Nov 28 2018 at 20:37)</a>:</h4>
<p>"Port code over to using NLL borrow check that doesn't use it today" What is this about?</p>



<a name="148741260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741260">(Nov 28 2018 at 20:37)</a>:</h4>
<p>We should recategorize NLL-deferred issues in those groups.</p>



<a name="148741304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741304">(Nov 28 2018 at 20:38)</a>:</h4>
<p>identifying code in the rustc or stdlib that falls into that category?</p>



<a name="148741312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741312">(Nov 28 2018 at 20:38)</a>:</h4>
<p>In rustc</p>



<a name="148741327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741327">(Nov 28 2018 at 20:38)</a>:</h4>
<p>I thought the vast majority of rustc crates were using NLL already?</p>



<a name="148741329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741329">(Nov 28 2018 at 20:38)</a>:</h4>
<blockquote>
<p>"Port code over to using NLL borrow check that doesn't use it today" What is this about?</p>
</blockquote>
<p>there are lots of bits of code in rustc that still use the lexical region checker</p>



<a name="148741335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741335">(Nov 28 2018 at 20:38)</a>:</h4>
<p>I would think the only cases where we would prioritize such rewrites is where the existing code is slower because it is working around AST-borrowck limitations</p>



<a name="148741344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741344">(Nov 28 2018 at 20:39)</a>:</h4>
<p>I want to remove the lexical solver</p>



<a name="148741345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741345">(Nov 28 2018 at 20:39)</a>:</h4>
<p>Oh oh I see now</p>



<a name="148741346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741346">(Nov 28 2018 at 20:39)</a>:</h4>
<p>therefore, I want to convert that code</p>



<a name="148741349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741349">(Nov 28 2018 at 20:39)</a>:</h4>
<p>Sorry I misintpreted the bullet</p>



<a name="148741352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741352">(Nov 28 2018 at 20:39)</a>:</h4>
<p><em>however,</em> I don't want to prioritize that</p>



<a name="148741353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741353">(Nov 28 2018 at 20:39)</a>:</h4>
<p>Oh, I see what you meant by that. <span class="emoji emoji-1f926" title="face palm">:face_palm:</span></p>



<a name="148741355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741355">(Nov 28 2018 at 20:39)</a>:</h4>
<p>because I want to do more work on NLL checker first</p>



<a name="148741356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741356">(Nov 28 2018 at 20:39)</a>:</h4>
<p>as meaning <em>make use of NLL</em> as a language feature</p>



<a name="148741358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741358">(Nov 28 2018 at 20:39)</a>:</h4>
<p>yeah, it was sort of ambiguous :)</p>



<a name="148741377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741377">(Nov 28 2018 at 20:39)</a>:</h4>
<p>(and because I'd like us to have time to shake out bugs etc)</p>



<a name="148741432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741432">(Nov 28 2018 at 20:40)</a>:</h4>
<p>anyway I agree with <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> that revisited "deferred" issues is a good idea</p>



<a name="148741433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741433">(Nov 28 2018 at 20:40)</a>:</h4>
<p>Is it "just" item checking that still needs porting, or is there something more significant?</p>



<a name="148741438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741438">(Nov 28 2018 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so you're pretty confident that most (or all) of the NLL-deferred things fall into one of those three buckets, or are <em>very</em> low priority?</p>



<a name="148741451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741451">(Nov 28 2018 at 20:40)</a>:</h4>
<p>no :) I'm not sure <em>what's</em> in there</p>



<a name="148741460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741460">(Nov 28 2018 at 20:40)</a>:</h4>
<p>I think it makes sense to remove NLL-deferred</p>



<a name="148741462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741462">(Nov 28 2018 at 20:40)</a>:</h4>
<p>k</p>



<a name="148741464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741464">(Nov 28 2018 at 20:40)</a>:</h4>
<p>as a thing</p>



<a name="148741477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741477">(Nov 28 2018 at 20:40)</a>:</h4>
<p>and move instead to P-medium vs P-low I guess</p>



<a name="148741499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741499">(Nov 28 2018 at 20:41)</a>:</h4>
<p>or untag en masse and then reuse it for future postponements. :)</p>



<a name="148741508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741508">(Nov 28 2018 at 20:41)</a>:</h4>
<blockquote>
<p>Is it "just" item checking that still needs porting, or is there something more significant?</p>
</blockquote>
<p>I can think of a few random things; wf checking, comparing impl methods against obligations, ... that may be it, not sure</p>



<a name="148741510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741510">(Nov 28 2018 at 20:41)</a>:</h4>
<p>but yeah P-low sounds better I guess</p>



<a name="148741520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741520">(Nov 28 2018 at 20:41)</a>:</h4>
<blockquote>
<p>or untag en masse and then reuse it for future postponements. :)</p>
</blockquote>
<p>well untagging en masse</p>



<a name="148741522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741522">(Nov 28 2018 at 20:41)</a>:</h4>
<p>and then triaging</p>



<a name="148741523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741523">(Nov 28 2018 at 20:41)</a>:</h4>
<p>is not the worst idea ever</p>



<a name="148741537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741537">(Nov 28 2018 at 20:41)</a>:</h4>
<p>but maybe it makes sense to look at the non-deferred things first?</p>



<a name="148741601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741601">(Nov 28 2018 at 20:42)</a>:</h4>
<p>e.g., the <a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3ANLL-sound+label%3AA-NLL" target="_blank" title="https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3ANLL-sound+label%3AA-NLL">nll-sound issues</a></p>



<a name="148741612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741612">(Nov 28 2018 at 20:42)</a>:</h4>
<p>I guess they are all assigned</p>



<a name="148741615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741615">(Nov 28 2018 at 20:42)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+-label%3ANLL-deferred+label%3AA-NLL++-label%3ANLL-fixed-by-NLL" target="_blank" title="https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+-label%3ANLL-deferred+label%3AA-NLL++-label%3ANLL-fixed-by-NLL">Non-deferred and non-fixed-by-NLL issues</a></p>



<a name="148741622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741622">(Nov 28 2018 at 20:42)</a>:</h4>
<p>but maybe it makes sense to decide if any of them are "P-high" in the ordinary compiler sense?</p>



<a name="148741637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741637">(Nov 28 2018 at 20:43)</a>:</h4>
<p>i.e., something we should be checking in on each week</p>



<a name="148741642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741642">(Nov 28 2018 at 20:43)</a>:</h4>
<p>ouch forgot about the meeting and filling the doc</p>



<a name="148741648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741648">(Nov 28 2018 at 20:43)</a>:</h4>
<p>ok, hi everyone :), sorry for being late</p>



<a name="148741654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741654">(Nov 28 2018 at 20:43)</a>:</h4>
<p>just arrived today from Europe</p>



<a name="148741745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741745">(Nov 28 2018 at 20:44)</a>:</h4>
<p>I guess we have some P-high annotations</p>



<a name="148741746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741746">(Nov 28 2018 at 20:44)</a>:</h4>
<p>this <a href="https://github.com/rust-lang/rust/issues/54105" target="_blank" title="https://github.com/rust-lang/rust/issues/54105">#54105</a> is not assigned</p>



<a name="148741760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741760">(Nov 28 2018 at 20:44)</a>:</h4>
<p>yeah, I'll take that one, I want to compare with the work that <span class="user-mention" data-user-id="131694">@scalexm</span>'s been doing</p>



<a name="148741763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741763">(Nov 28 2018 at 20:44)</a>:</h4>
<p><del>(why wasn't it caught in the earlier listing...)</del> ((it was there, nevermind))</p>



<a name="148741766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741766">(Nov 28 2018 at 20:45)</a>:</h4>
<p>it's definitely an edge case</p>



<a name="148741773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741773">(Nov 28 2018 at 20:45)</a>:</h4>
<p>if it's even a real bug</p>



<a name="148741788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741788">(Nov 28 2018 at 20:45)</a>:</h4>
<p>it'd be good to decide on way or the other :)</p>



<a name="148741790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741790">(Nov 28 2018 at 20:45)</a>:</h4>
<p>I was not able to reproduce a problem iirc</p>



<a name="148741807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741807">(Nov 28 2018 at 20:45)</a>:</h4>
<p>maybe we should go down the NLL-sound list?</p>



<a name="148741811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741811">(Nov 28 2018 at 20:45)</a>:</h4>
<p>okay</p>



<a name="148741818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741818">(Nov 28 2018 at 20:45)</a>:</h4>
<p>e.g.,  prohibit "two-phase borrows" with existing borrows? <a href="https://github.com/rust-lang/rust/issues/56254" target="_blank" title="https://github.com/rust-lang/rust/issues/56254">#56254</a></p>



<a name="148741820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741820">(Nov 28 2018 at 20:46)</a>:</h4>
<p>I'm not sure what's the latest in the thread but this needs to be acted up on relatively promptly I think</p>



<a name="148741863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741863">(Nov 28 2018 at 20:46)</a>:</h4>
<p>if we're going to make changes</p>



<a name="148741867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741867">(Nov 28 2018 at 20:46)</a>:</h4>
<p>Given that we were already trying to limit two-phase borrows (to e.g. autoref)</p>



<a name="148741873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741873">(Nov 28 2018 at 20:46)</a>:</h4>
<p>I'm not inclined to backport though, as I wrote, because it just seems too stressful and not worth it</p>



<a name="148741905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741905">(Nov 28 2018 at 20:46)</a>:</h4>
<p>it probably makes some sense to impose this limitation as well. Though I don't know anything about the supposed motivation (stacked borrows model, whatever that is)</p>



<a name="148741906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741906">(Nov 28 2018 at 20:46)</a>:</h4>
<p>"how much code will be uploaded to <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a> that exploits this in 6 weeks" (famous last words)</p>



<a name="148741939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741939">(Nov 28 2018 at 20:47)</a>:</h4>
<p>it's <span class="user-mention" data-user-id="120791">@RalfJ</span>'s attempt to come up with a definition of UB for unsafe code</p>



<a name="148741956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741956">(Nov 28 2018 at 20:47)</a>:</h4>
<p>I mean it is also true that</p>



<a name="148741962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741962">(Nov 28 2018 at 20:47)</a>:</h4>
<p>we may want to permit this sort of thing, even if it complicates the model</p>



<a name="148741968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148741968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148741968">(Nov 28 2018 at 20:47)</a>:</h4>
<p>but it's nice to have the freedom to decide that</p>



<a name="148742016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742016">(Nov 28 2018 at 20:48)</a>:</h4>
<p>and this pattern is outside the original goals of 2PB</p>



<a name="148742027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742027">(Nov 28 2018 at 20:48)</a>:</h4>
<p>Well, the PR that I have up breaks some code in the compiler</p>



<a name="148742037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742037">(Nov 28 2018 at 20:48)</a>:</h4>
<p>I've not looked at your PR</p>



<a name="148742040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742040">(Nov 28 2018 at 20:48)</a>:</h4>
<p>what code is broken?</p>



<a name="148742105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742105">(Nov 28 2018 at 20:49)</a>:</h4>
<blockquote>
<p>we may want to permit this sort of thing, even if it complicates the model</p>
</blockquote>
<p>complicates the model and makes optimizations harder / require more information / stronger analysis</p>



<a name="148742117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742117">(Nov 28 2018 at 20:49)</a>:</h4>
<p>the aforementioned PR from <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> : PR <a href="https://github.com/rust-lang/rust/issues/56301" target="_blank" title="https://github.com/rust-lang/rust/issues/56301">#56301</a></p>



<a name="148742189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742189">(Nov 28 2018 at 20:50)</a>:</h4>
<p>it's some code in <code>add_retag.rs</code> <span class="emoji emoji-1f643" title="upside down">:upside_down:</span></p>



<a name="148742243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742243">(Nov 28 2018 at 20:50)</a>:</h4>
<div class="codehilite"><pre><span></span>[00:31:40] error[E0502]: cannot borrow `block_data.statements` as mutable because it is also borrowed as immutable
[00:31:40]    --&gt; src/librustc_mir/transform/add_retag.rs:185:29
[00:31:40]     |
[00:31:40] 167 |                 match block_data.statements[i].kind {
[00:31:40] ...
[00:31:40] ...
[00:31:40] 185 |                             block_data.statements.insert(i, Statement {
[00:31:40] 186 |                                 source_info,
[00:31:40] 186 |                                 source_info,
[00:31:40] 187 |                                 kind: StatementKind::EscapeToRaw(src.clone()),
[00:31:40]     |                                                                  --- immutable borrow used here, in later iteration of loop
[00:31:40]
[00:31:40] error[E0502]: cannot borrow `block_data.statements` as mutable because it is also borrowed as immutable
[00:31:40]    --&gt; src/librustc_mir/transform/add_retag.rs:197:25
[00:31:40]     |
[00:31:40] 167 |                 match block_data.statements[i].kind {
[00:31:40] ...
[00:31:40] ...
[00:31:40] 197 |                         block_data.statements.insert(i+1, Statement {
[00:31:40] 198 |                             source_info,
[00:31:40] 198 |                             source_info,
[00:31:40] 199 |                             kind: StatementKind::Retag { fn_entry: false, place: place.clone() },
[00:31:40]     |                                                                                  ----- immutable borrow used here, in later iteration of loop
[00:31:48] error: aborting due to 2 previous errors
</pre></div>



<a name="148742248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742248">(Nov 28 2018 at 20:51)</a>:</h4>
<p>(see the travis failure)</p>



<a name="148742250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742250">(Nov 28 2018 at 20:51)</a>:</h4>
<p>that I guess?</p>



<a name="148742340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742340">(Nov 28 2018 at 20:51)</a>:</h4>
<p>Yes, the clones can just be moved out of the calls to fix this</p>



<a name="148742398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742398">(Nov 28 2018 at 20:52)</a>:</h4>
<p>but ... is this code that used to work under AST-borrowck ?</p>



<a name="148742411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742411">(Nov 28 2018 at 20:52)</a>:</h4>
<p>interesting</p>



<a name="148742418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742418">(Nov 28 2018 at 20:52)</a>:</h4>
<p>or was it only added after we turned on NLL by default?</p>



<a name="148742426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742426">(Nov 28 2018 at 20:52)</a>:</h4>
<p>I added it fairly recently</p>



<a name="148742430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742430">(Nov 28 2018 at 20:52)</a>:</h4>
<p>but I was certainly not aware I was even relying on 2PB^^</p>



<a name="148742434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742434">(Nov 28 2018 at 20:52)</a>:</h4>
<p>added 2018-11-06</p>



<a name="148742448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742448">(Nov 28 2018 at 20:52)</a>:</h4>
<p>so you admit to using the feature you want to remove! J'accuse! <span class="emoji emoji-1f609" title="wink">:wink:</span></p>



<a name="148742458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742458">(Nov 28 2018 at 20:52)</a>:</h4>
<p>amusing</p>



<a name="148742468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742468">(Nov 28 2018 at 20:53)</a>:</h4>
<p>well I think this refutes niko's argument that no code relying on this will land on <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a> in 6 weeks :P</p>



<a name="148742486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742486">(Nov 28 2018 at 20:53)</a>:</h4>
<p>heh. =) it may well</p>



<a name="148742580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742580">(Nov 28 2018 at 20:54)</a>:</h4>
<p>There may already be projects on nightly with code that relies on it.</p>



<a name="148742582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742582">(Nov 28 2018 at 20:54)</a>:</h4>
<p>do we want to make an executive decision here on our own as a team, or do we want to let T-lang weigh in tomororw night?</p>



<a name="148742660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742660">(Nov 28 2018 at 20:55)</a>:</h4>
<p>We could just revert the match guard desugaring and then the fix is simple. The match bug has been around since forever and it's only a warning in migrate mode.</p>



<a name="148742677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742677">(Nov 28 2018 at 20:55)</a>:</h4>
<p>(Or not, but then it's less simple)</p>



<a name="148742739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742739">(Nov 28 2018 at 20:56)</a>:</h4>
<p>hmm my reading was that the regression of <a href="http://add_retag.rs" target="_blank" title="http://add_retag.rs">add_retag.rs</a> was due to the fundamental restriction being added; you say its actually part of the new match guard desugaring?</p>



<a name="148742748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742748">(Nov 28 2018 at 20:56)</a>:</h4>
<p>/me goes to look more carefully at the code in question</p>



<a name="148742765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742765">(Nov 28 2018 at 20:57)</a>:</h4>
<p>No, I'm talking about the easiest way to make Reservations mutable accesses</p>



<a name="148742767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742767">(Nov 28 2018 at 20:57)</a>:</h4>
<p>it looks fundamental to me</p>



<a name="148742787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742787">(Nov 28 2018 at 20:57)</a>:</h4>
<p>Which is what the current match checking relies on. (It relies on them only being shared accesses)</p>



<a name="148742841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742841">(Nov 28 2018 at 20:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> okay, but hold on. There may be different threads of conversation going on ...</p>



<a name="148742847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742847">(Nov 28 2018 at 20:58)</a>:</h4>
<p>I think we should probably hash this out in the other topic</p>



<a name="148742857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742857">(Nov 28 2018 at 20:58)</a>:</h4>
<p>(outside of this mtg?)</p>



<a name="148742858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742858">(Nov 28 2018 at 20:58)</a>:</h4>
<p>yeah, add_retag fundamentally relies on the thing I am suggesting to not allow</p>



<a name="148742862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742862">(Nov 28 2018 at 20:58)</a>:</h4>
<p>rather ironically, I must admit^^</p>



<a name="148742866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742866">(Nov 28 2018 at 20:58)</a>:</h4>
<p>but it does seem like we have to reach a decision asap</p>



<a name="148742876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742876">(Nov 28 2018 at 20:58)</a>:</h4>
<p>I though the point raised by the <code>add_retag.rs</code> example was that code in the wild might in practice <em>want</em> to lift the constraint being requested by <span class="user-mention" data-user-id="120791">@RalfJ</span></p>



<a name="148742883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742883">(Nov 28 2018 at 20:58)</a>:</h4>
<p>not only is that code I wrote, it is part of the Stacked Borrows implementation which gives rise to my suggestions</p>



<a name="148742891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742891">(Nov 28 2018 at 20:58)</a>:</h4>
<p>okay.</p>



<a name="148742898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742898">(Nov 28 2018 at 20:59)</a>:</h4>
<p>That's the best irony I've seen in so long.</p>



<a name="148742934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742934">(Nov 28 2018 at 20:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yeah okay so maybe we got sidetracked, or maybe this is the most important Q to resolve in the meeting, given the time pressure...?</p>



<a name="148742940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742940">(Nov 28 2018 at 20:59)</a>:</h4>
<p>(honestly not sure)</p>



<a name="148742949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742949">(Nov 28 2018 at 20:59)</a>:</h4>
<p>heh I too am unsure</p>



<a name="148742970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148742970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148742970">(Nov 28 2018 at 21:00)</a>:</h4>
<p>I am reluctant to revert the match guard protections etc</p>



<a name="148743005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743005">(Nov 28 2018 at 21:00)</a>:</h4>
<blockquote>
<p>I though the point raised by the <code>add_retag.rs</code> example was that code in the wild might in practice <em>want</em> to lift the constraint being requested by <span class="user-mention" data-user-id="120791">@RalfJ</span></p>
</blockquote>
<p>yeah there's a tradeoff between allowing more code on the one hand, and more optimizations / easier analysis (in the optimizer) on the other hand</p>



<a name="148743051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743051">(Nov 28 2018 at 21:00)</a>:</h4>
<p>Do we think that it's worth trying at all to get a fix for this in before the release?</p>



<a name="148743093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743093">(Nov 28 2018 at 21:01)</a>:</h4>
<blockquote>
<p>I am reluctant to revert the match guard protections etc</p>
</blockquote>
<p>the risks around match guards may be fundamentally lower</p>



<a name="148743098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743098">(Nov 28 2018 at 21:01)</a>:</h4>
<p>because there is feature gate guarding the more full featured expressive forms there</p>



<a name="148743106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743106">(Nov 28 2018 at 21:01)</a>:</h4>
<p>/me goes to look for the link</p>



<a name="148743120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743120">(Nov 28 2018 at 21:01)</a>:</h4>
<p>this one: <a href="https://github.com/rust-lang/rfcs/pull/107" target="_blank" title="https://github.com/rust-lang/rfcs/pull/107">https://github.com/rust-lang/rfcs/pull/107</a></p>



<a name="148743132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743132">(Nov 28 2018 at 21:02)</a>:</h4>
<p>aka <a href="https://github.com/rust-lang/rust/issues/15287" target="_blank" title="https://github.com/rust-lang/rust/issues/15287">#15287</a></p>



<a name="148743180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743180">(Nov 28 2018 at 21:02)</a>:</h4>
<p>aka <code>#![feature(bind_by_move_pattern_guards)]</code></p>



<a name="148743200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743200">(Nov 28 2018 at 21:02)</a>:</h4>
<p>I guess then the options are:</p>
<ul>
<li>land <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>'s PR as is, perhaps backport</li>
<li>revert arm guards and land a variant on the PR, perhaps backport</li>
<li>do not backport and discuss more</li>
</ul>
<p>in the first two cases, we probably want to revisit the model a bit and see if we can't find something we're happier with overall?</p>



<a name="148743201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743201">(Nov 28 2018 at 21:02)</a>:</h4>
<p>You need to use a closure that captures the variable being matched on.</p>



<a name="148743205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743205">(Nov 28 2018 at 21:02)</a>:</h4>
<p>in other words, I am claiming that it will be harder for people to run into trouble there ... maybe... because we already limit them so much</p>



<a name="148743231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743231">(Nov 28 2018 at 21:03)</a>:</h4>
<blockquote>
<p>You need to use a closure that captures the variable being matched on.</p>
</blockquote>
<p>right, that's the <span class="user-mention" data-user-id="126804">@Ariel Ben-Yehuda</span> workaround for exposing the old bug</p>



<a name="148743233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743233">(Nov 28 2018 at 21:03)</a>:</h4>
<p>it just feels like a lot of code to change too</p>



<a name="148743253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743253">(Nov 28 2018 at 21:03)</a>:</h4>
<p>what does reverting the match guard protection mean exactly?</p>



<a name="148743271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743271">(Nov 28 2018 at 21:03)</a>:</h4>
<p>we would make <code>ref mut p</code> exposed as a true <code>&amp;mut</code> in the arm guard code?</p>



<a name="148743277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743277">(Nov 28 2018 at 21:04)</a>:</h4>
<p>I think we do have some sort of "boolean" there, or used to, to change how the MIR was generated</p>



<a name="148743280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743280">(Nov 28 2018 at 21:04)</a>:</h4>
<p>so perhaps that's still well tested</p>



<a name="148743334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743334">(Nov 28 2018 at 21:04)</a>:</h4>
<blockquote>
<p>we would make <code>ref mut p</code> exposed as a true <code>&amp;mut</code> in the arm guard code?</p>
</blockquote>
<p>that's not even needed, "just" the fake refs/reads are in the way</p>



<a name="148743336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743336">(Nov 28 2018 at 21:04)</a>:</h4>
<p>(I think the "final result" we want may well just be the "transmute" approach anyway?)</p>



<a name="148743363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743363">(Nov 28 2018 at 21:04)</a>:</h4>
<ul>
<li>Set the <code>generate_borrow_of_any_match_input</code> flag to false by default, even in NLL</li>
<li>Change the <code>ref mut</code> borrow back to "one phase"</li>
</ul>



<a name="148743418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743418">(Nov 28 2018 at 21:05)</a>:</h4>
<blockquote>
<p>that's not even needed, "just" the fake refs/reads are in the way</p>
</blockquote>
<p>which fake refs are you referring to?</p>



<a name="148743424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743424">(Nov 28 2018 at 21:05)</a>:</h4>
<blockquote>
<p>Set the <code>generate_borrow_of_any_match_input</code> flag to false by default, even in NLL</p>
</blockquote>
<p>won't that open a soundness hole?</p>



<a name="148743438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743438">(Nov 28 2018 at 21:06)</a>:</h4>
<p>oh only if you do the closure thing</p>



<a name="148743479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743479">(Nov 28 2018 at 21:06)</a>:</h4>
<p>Yes, but it's a hard one to exploit</p>



<a name="148743486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743486">(Nov 28 2018 at 21:06)</a>:</h4>
<p>iirc, we first insert a bunch of shallow borrows for all the "discriminants" we switch on -- these last until we enter the match arm.</p>
<p>then for guards with <code>&amp;mut</code> variables we do 2PB that are never activated.</p>
<p>It's these 2PB that are a problem, right?</p>



<a name="148743496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743496">(Nov 28 2018 at 21:06)</a>:</h4>
<blockquote>
<blockquote>
<p>that's not even needed, "just" the fake refs/reads are in the way</p>
</blockquote>
<p>which fake refs are you referring to?</p>
</blockquote>
<p>the "fake" stuff in <a href="https://github.com/rust-lang/rust/issues/56254#issuecomment-442357546" target="_blank" title="https://github.com/rust-lang/rust/issues/56254#issuecomment-442357546">https://github.com/rust-lang/rust/issues/56254#issuecomment-442357546</a></p>



<a name="148743605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743605">(Nov 28 2018 at 21:08)</a>:</h4>
<p>with those gone, the borrow can even stay <code>&amp;mut2phase</code>, because there'll be no outstanding shared borrows</p>



<a name="148743649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743649">(Nov 28 2018 at 21:08)</a>:</h4>
<p>(from what I understand, not sure if I got this right)</p>



<a name="148743663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743663">(Nov 28 2018 at 21:08)</a>:</h4>
<p>right, so from my list, you're talking about the "shallow borrows for discriminants"</p>



<a name="148743672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743672">(Nov 28 2018 at 21:08)</a>:</h4>
<p>but the whole point of the FakeReads is to catch mutations from the guards, no?</p>



<a name="148743679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743679">(Nov 28 2018 at 21:08)</a>:</h4>
<p>there were some pretty bad soundness problems in matches iirc</p>



<a name="148743690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743690">(Nov 28 2018 at 21:08)</a>:</h4>
<p>that required less than a closure to exploit :)</p>



<a name="148743699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743699">(Nov 28 2018 at 21:09)</a>:</h4>
<p>I want to be sure we don't re-open those doors</p>



<a name="148743833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743833">(Nov 28 2018 at 21:10)</a>:</h4>
<p>I'm not convinced that just reverting the guard treatment helps here? In particular, if we go back to the old way, then aren't <code>ref mut</code> bindings a strict <code>&amp;mut</code>, which means that they will <em>definitely</em> conflict with the "fake" borrows of the discriminants, right? or am I being silly?</p>



<a name="148743840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743840">(Nov 28 2018 at 21:10)</a>:</h4>
<p>The particularly bad one was that AST borrowck has no concept of a "discriminant(x)" which accesses memory</p>



<a name="148743853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743853">(Nov 28 2018 at 21:10)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> is my summary roughly correct of what we are doing now?</p>



<a name="148743868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743868">(Nov 28 2018 at 21:11)</a>:</h4>
<p>Yes, that's why I'm suggesting turning them off, for now</p>



<a name="148743956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743956">(Nov 28 2018 at 21:12)</a>:</h4>
<p>right but how does that help. Then we do the discriminant borrows and we do <em>real</em> <code>&amp;mut</code> borrows, not 2phase</p>



<a name="148743962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743962">(Nov 28 2018 at 21:12)</a>:</h4>
<p>which <em>definitely</em> conflict</p>



<a name="148743972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743972">(Nov 28 2018 at 21:12)</a>:</h4>
<p>I think he's proposing to not do discriminant borrows</p>



<a name="148743974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743974">(Nov 28 2018 at 21:12)</a>:</h4>
<p>No, I mean the discriminant borrows</p>



<a name="148743975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743975">(Nov 28 2018 at 21:12)</a>:</h4>
<p>that's what's being turned off</p>



<a name="148743976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743976">(Nov 28 2018 at 21:12)</a>:</h4>
<p>ah ok</p>



<a name="148743987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148743987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148743987">(Nov 28 2018 at 21:12)</a>:</h4>
<blockquote>
<ul>
<li>Set the <code>generate_borrow_of_any_match_input</code> flag to false by default, even in NLL</li>
<li>Change the <code>ref mut</code> borrow back to "one phase"</li>
</ul>
</blockquote>
<p>so not this :)</p>



<a name="148744003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744003">(Nov 28 2018 at 21:13)</a>:</h4>
<p>.... no that is what he's describing</p>



<a name="148744012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744012">(Nov 28 2018 at 21:13)</a>:</h4>
<p>ok, I guess I'm confused as to the role of that flag</p>



<a name="148744023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744023">(Nov 28 2018 at 21:13)</a>:</h4>
<p>Setting <code>generate_borrow_of_any_match_input</code> flag to false will cause the discriminant borrows to be suppressed</p>



<a name="148744025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744025">(Nov 28 2018 at 21:13)</a>:</h4>
<p><em>anyway</em></p>



<a name="148744031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744031">(Nov 28 2018 at 21:13)</a>:</h4>
<p>ok ok thanks sorry :)</p>



<a name="148744040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744040">(Nov 28 2018 at 21:13)</a>:</h4>
<p>in that case we don't have to change the ref mut borrows back to 1phase</p>



<a name="148744045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744045">(Nov 28 2018 at 21:14)</a>:</h4>
<p>we can if we like</p>



<a name="148744096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744096">(Nov 28 2018 at 21:14)</a>:</h4>
<p>(right?)</p>



<a name="148744110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744110">(Nov 28 2018 at 21:14)</a>:</h4>
<p>I think so (that's what I said above)</p>



<a name="148744113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744113">(Nov 28 2018 at 21:14)</a>:</h4>
<p>I don't quite grok the logic of what we're talking about</p>



<a name="148744125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744125">(Nov 28 2018 at 21:14)</a>:</h4>
<p>in terms of re-injecting an (admittedly subtle) soundness hole</p>



<a name="148744144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744144">(Nov 28 2018 at 21:15)</a>:</h4>
<p>in order to accommodate a hypothetical soundness model...</p>



<a name="148744148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744148">(Nov 28 2018 at 21:15)</a>:</h4>
<p>It's doesn't really matter either way. It just keeps more options open.</p>



<a name="148744184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744184">(Nov 28 2018 at 21:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> it'd make restricting 2PB as suggested trivial (backportable, even, maybe), that's all</p>



<a name="148744242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744242">(Nov 28 2018 at 21:16)</a>:</h4>
<p>but yeah knowingly introducing unsoundness is... rather drastic</p>



<a name="148744258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744258">(Nov 28 2018 at 21:16)</a>:</h4>
<p>it seems like <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>'s Pr is "not so bad"</p>



<a name="148744268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744268">(Nov 28 2018 at 21:16)</a>:</h4>
<p>the only thing that we would wnt to do to clean it up</p>



<a name="148744270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744270">(Nov 28 2018 at 21:16)</a>:</h4>
<p>If we're not backporting. Then I'll create a PR that does this all properly.</p>



<a name="148744273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744273">(Nov 28 2018 at 21:16)</a>:</h4>
<p>is to remove 2PB and replace with transmute</p>



<a name="148744293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744293">(Nov 28 2018 at 21:17)</a>:</h4>
<p>and sidestep the whole issue</p>



<a name="148744316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744316">(Nov 28 2018 at 21:17)</a>:</h4>
<p>i.e., transmute a <code>&amp;&amp;Foo</code> to a <code>&amp;&amp;mut Foo</code></p>



<a name="148744329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744329">(Nov 28 2018 at 21:17)</a>:</h4>
<p>which -- as <span class="user-mention" data-user-id="120791">@RalfJ</span> has proven =) -- are equivalent</p>



<a name="148744337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744337">(Nov 28 2018 at 21:17)</a>:</h4>
<p>and then we don't have the special cases anymore</p>



<a name="148744379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744379">(Nov 28 2018 at 21:18)</a>:</h4>
<p>(we could maybe even do that in the PR itself, I suppose)</p>



<a name="148744382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744382">(Nov 28 2018 at 21:18)</a>:</h4>
<p>is that correct?</p>



<a name="148744409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744409">(Nov 28 2018 at 21:18)</a>:</h4>
<p>I think so</p>



<a name="148744424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744424">(Nov 28 2018 at 21:19)</a>:</h4>
<blockquote>
<p><code>match x { ref mut z if x == z =&gt; ...</code></p>
</blockquote>
<p>If we're happy with this compiling</p>



<a name="148744458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744458">(Nov 28 2018 at 21:19)</a>:</h4>
<p>ok, right, so there is the question of </p>
<div class="codehilite"><pre><span></span>match x { ref mut z if x == 1
</pre></div>


<p>but .. I feel ok about it personally. In partcular,</p>



<a name="148744469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744469">(Nov 28 2018 at 21:19)</a>:</h4>
<p>it would be UB to (e.g.) use unsafe code to modify through that <code>*z</code> etc</p>



<a name="148744478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744478">(Nov 28 2018 at 21:19)</a>:</h4>
<p>so there is already some "specialness" going on</p>



<a name="148744548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744548">(Nov 28 2018 at 21:20)</a>:</h4>
<p>i.e., there is an edge case where the desugaring becomes visible, but it's not clearly a problem</p>



<a name="148744560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744560">(Nov 28 2018 at 21:20)</a>:</h4>
<p>I guess I don't know what the alternative is that rejects that, did you have a concrete proposal <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>?</p>



<a name="148744569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744569">(Nov 28 2018 at 21:20)</a>:</h4>
<p>wait was it supposed to be <code>1</code> or <code>z</code> in there</p>



<a name="148744573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744573">(Nov 28 2018 at 21:20)</a>:</h4>
<p><code>z</code>, right?</p>



<a name="148744581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744581">(Nov 28 2018 at 21:21)</a>:</h4>
<p>no</p>



<a name="148744586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744586">(Nov 28 2018 at 21:21)</a>:</h4>
<p>the point is</p>



<a name="148744600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744600">(Nov 28 2018 at 21:21)</a>:</h4>
<p>we have a <code>z</code> with type <code>&amp;&amp;mut u32</code></p>



<a name="148744605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744605">(Nov 28 2018 at 21:21)</a>:</h4>
<p>Either: it doesn't really matter</p>



<a name="148744609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744609">(Nov 28 2018 at 21:21)</a>:</h4>
<p>but it's kind of a lie -- but not <em>really</em> a lie</p>



<a name="148744618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744618">(Nov 28 2018 at 21:21)</a>:</h4>
<p>er sorry <code>z</code> has type <code>&amp;mut u32</code></p>



<a name="148744623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744623">(Nov 28 2018 at 21:21)</a>:</h4>
<p>but you can access <code>x</code> directly</p>



<a name="148744633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744633">(Nov 28 2018 at 21:21)</a>:</h4>
<p>since <em>really</em> what you have when you reference <code>z</code> is not an <code>&amp;mut u32</code></p>



<a name="148744643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744643">(Nov 28 2018 at 21:21)</a>:</h4>
<p>but rather a "shared" <code>&amp;mut u32</code></p>



<a name="148744691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744691">(Nov 28 2018 at 21:22)</a>:</h4>
<p>(this also compiles today, I presume)</p>



<a name="148744718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744718">(Nov 28 2018 at 21:22)</a>:</h4>
<p>I feel like guards are in a weird state and when someone notices this, it's time for them to "level up" and learn about the desugaring a bit more deeply :P</p>



<a name="148744734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744734">(Nov 28 2018 at 21:22)</a>:</h4>
<p>but maybe i'm rationalizing</p>



<a name="148744777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744777">(Nov 28 2018 at 21:23)</a>:</h4>
<p>Are we going to be committing to this same code gen strategy forever?</p>



<a name="148744794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744794">(Nov 28 2018 at 21:23)</a>:</h4>
<p>we're committed to that code compiling</p>



<a name="148744842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744842">(Nov 28 2018 at 21:24)</a>:</h4>
<p>but the stuff about using unsafe code to observe the underlying pointers</p>



<a name="148744846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744846">(Nov 28 2018 at 21:24)</a>:</h4>
<p>but really what it comes down to is</p>



<a name="148744848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744848">(Nov 28 2018 at 21:24)</a>:</h4>
<p>I'm asking if we're committing to that always having the same semantics</p>



<a name="148744850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744850">(Nov 28 2018 at 21:24)</a>:</h4>
<p>when does the "uniqueness" kick in</p>



<a name="148744856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744856">(Nov 28 2018 at 21:24)</a>:</h4>
<p>IMO, we should take the obvious codegen, and remove unsound cases. Not create new cases that are OK</p>



<a name="148744859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744859">(Nov 28 2018 at 21:24)</a>:</h4>
<p>effectively we're building an upgradable read-write lock</p>



<a name="148744865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744865">(Nov 28 2018 at 21:24)</a>:</h4>
<p>I must have missed it. What is the "obvious codegen"?</p>



<a name="148744877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744877">(Nov 28 2018 at 21:25)</a>:</h4>
<blockquote>
<p>effectively we're building an upgradable read-write lock</p>
</blockquote>
<p>this is what 2PB is doing today; we're recreating that behavior through a shared lock that transitions to a <code>&amp;mut</code></p>



<a name="148744906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744906">(Nov 28 2018 at 21:25)</a>:</h4>
<p>Create a mutable reference immediately, no fake borrows, only one version of the variable.</p>



<a name="148744973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744973">(Nov 28 2018 at 21:26)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> the fake borrows are what prevent aliased mutation (via closure)</p>



<a name="148744986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744986">(Nov 28 2018 at 21:26)</a>:</h4>
<p>right, that is what we started with, but we adopted this to close soundness holes</p>



<a name="148744992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148744992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148744992">(Nov 28 2018 at 21:26)</a>:</h4>
<blockquote>
<p>Create a mutable reference immediately, no fake borrows, only one version of the variable.</p>
</blockquote>
<p>but then how do we reject guards that mutate the discriminant?</p>



<a name="148745015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745015">(Nov 28 2018 at 21:27)</a>:</h4>
<p>(the background here, for the peanut gallery, is available in PR <a href="https://github.com/rust-lang/rust/issues/50783" target="_blank" title="https://github.com/rust-lang/rust/issues/50783">#50783</a> and issue <a href="https://github.com/rust-lang/rust/issues/27282" target="_blank" title="https://github.com/rust-lang/rust/issues/27282">#27282</a> )</p>



<a name="148745045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745045">(Nov 28 2018 at 21:27)</a>:</h4>
<p>ah thanks I was looking for <a href="https://github.com/rust-lang/rust/issues/27282" target="_blank" title="https://github.com/rust-lang/rust/issues/27282">#27282</a></p>



<a name="148745098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745098">(Nov 28 2018 at 21:28)</a>:</h4>
<p>oh, I was searching with <code>is:closed</code></p>



<a name="148745102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745102">(Nov 28 2018 at 21:28)</a>:</h4>
<p>that's why I couldn't find it :)</p>



<a name="148745111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745111">(Nov 28 2018 at 21:28)</a>:</h4>
<p>Indeed, we need to prevent mutation except the "mutation" from <code>ref mut</code>. I just don't think that we should allow more code in the process.</p>



<a name="148745125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745125">(Nov 28 2018 at 21:28)</a>:</h4>
<p>well, including the mutation from <code>ref mut</code>?</p>



<a name="148745144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745144">(Nov 28 2018 at 21:29)</a>:</h4>
<p>(er, what I mean is, the guard should not mutate through the <code>ref mut</code> binding)</p>



<a name="148745174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745174">(Nov 28 2018 at 21:29)</a>:</h4>
<p>Yes, it shouldn't, but <code>ref mut</code> should be allowed</p>



<a name="148745179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745179">(Nov 28 2018 at 21:29)</a>:</h4>
<p>I see your point, in any case, I'm just not sure how that is to be done.</p>



<a name="148745195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745195">(Nov 28 2018 at 21:29)</a>:</h4>
<p>Indeed, there's no way I'm implementing a solution there in 2 days.</p>



<a name="148745242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745242">(Nov 28 2018 at 21:30)</a>:</h4>
<p>I know we've written up various edge cases in the past</p>



<a name="148745253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745253">(Nov 28 2018 at 21:30)</a>:</h4>
<p>that said</p>



<a name="148745258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745258">(Nov 28 2018 at 21:30)</a>:</h4>
<p>I think that if we leave this rather narrow window open</p>



<a name="148745261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745261">(Nov 28 2018 at 21:30)</a>:</h4>
<p>that you can access the value being matched <em>in a match arm</em></p>



<a name="148745266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745266">(Nov 28 2018 at 21:30)</a>:</h4>
<p>(and i think many of the edge cases are in the comment thread of <a href="https://github.com/rust-lang/rust/issues/27282" target="_blank" title="https://github.com/rust-lang/rust/issues/27282">#27282</a> ...)</p>



<a name="148745273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745273">(Nov 28 2018 at 21:30)</a>:</h4>
<p>there's a good chance we can close it, if we come up with a good fix</p>



<a name="148745285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745285">(Nov 28 2018 at 21:30)</a>:</h4>
<p>and if not, I think we can live with it</p>



<a name="148745314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745314">(Nov 28 2018 at 21:31)</a>:</h4>
<p>since basically the way to think about it is:</p>
<ul>
<li>during matching -- <strong>and guard evaluation</strong> -- you have shared borrows to everything</li>
<li>the <code>ref mut</code> is only really activated once you pick an arm</li>
</ul>



<a name="148745332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745332">(Nov 28 2018 at 21:31)</a>:</h4>
<p>I agree it's not ideal, but it seems tolerably simple</p>



<a name="148745342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745342">(Nov 28 2018 at 21:31)</a>:</h4>
<p>that said I think it's not a bad idea to try and revisit (and document, this time!) the whole saga</p>



<a name="148745381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745381">(Nov 28 2018 at 21:32)</a>:</h4>
<p>i.e., schedule a time to go over and rederive all the edge cases</p>



<a name="148745384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745384">(Nov 28 2018 at 21:32)</a>:</h4>
<p>and see if we see another solution</p>



<a name="148745424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745424">(Nov 28 2018 at 21:32)</a>:</h4>
<blockquote>
<p>I agree it's not ideal, but it seems tolerably simple</p>
</blockquote>
<p>it seems like a more likely way for people to learn about this is when they try to pass the <code>&amp;mut</code> to a function that mutates, like </p>
<div class="codehilite"><pre><span></span><span class="k">match</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">ref</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">v</span><span class="p">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">22</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="148745444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745444">(Nov 28 2018 at 21:33)</a>:</h4>
<p>and we all agree that will not be permitted...</p>



<a name="148745462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745462">(Nov 28 2018 at 21:33)</a>:</h4>
<p>speaking of which, I bet we give a terrible error message for that</p>



<a name="148745532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745532">(Nov 28 2018 at 21:34)</a>:</h4>
<p>(or we will once that feature gate is lifted)</p>



<a name="148745558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745558">(Nov 28 2018 at 21:35)</a>:</h4>
<p>so does that mean we want to start by trying to land some variant of <a href="https://github.com/rust-lang/rust/issues/56301" target="_blank" title="https://github.com/rust-lang/rust/issues/56301">#56301</a> ?</p>



<a name="148745563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745563">(Nov 28 2018 at 21:35)</a>:</h4>
<p>and backport?</p>



<a name="148745569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745569">(Nov 28 2018 at 21:35)</a>:</h4>
<div class="codehilite"><pre><span></span>error[E0596]: cannot borrow `*v` as mutable, as it is immutable for the pattern guard
 --&gt; &lt;source&gt;:9:22
  |
9 |         ref mut v if v.insert(22) =&gt; { }
  |                      ^ cannot borrow as mutable
  |
  = note: variables bound in patterns are immutable until the end of the pattern guard
error: aborting due to previous error
For more information about this error, try `rustc --explain E0596`.
Compiler returned: 1
</pre></div>


<p>Could be worse</p>



<a name="148745572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745572">(Nov 28 2018 at 21:35)</a>:</h4>
<p>and then do a comprehensive review of the situation?</p>



<a name="148745579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745579">(Nov 28 2018 at 21:35)</a>:</h4>
<blockquote>
<p>Could be worse</p>
</blockquote>
<p>I stand corrected! pretty decent</p>



<a name="148745597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745597">(Nov 28 2018 at 21:36)</a>:</h4>
<p>is that from nightly, or from your PR, <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>  ?</p>



<a name="148745661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745661">(Nov 28 2018 at 21:36)</a>:</h4>
<p>I got this with <code>#![feature(nll)]</code> unless I'm doing something wrong? <a href="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2015&amp;gist=557f22e6c8ae84fc3b77cc8cfaa77f61" target="_blank" title="https://play.rust-lang.org/?version=nightly&amp;mode=debug&amp;edition=2015&amp;gist=557f22e6c8ae84fc3b77cc8cfaa77f61">playground</a></p>
<div class="codehilite"><pre><span></span>error[E0301]: cannot mutably borrow in a pattern guard
 --&gt; src/main.rs:6:22
  |
6 |         ref mut v if v.insert(22) =&gt; { println!(&quot;{:?}&quot;, v); }
  |                      ^ borrowed mutably in pattern guard
  |
  = help: add #![feature(bind_by_move_pattern_guards)] to the crate attributes to enable
</pre></div>



<a name="148745681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745681">(Nov 28 2018 at 21:36)</a>:</h4>
<p><code>#![feature(nll, bind_by_move_pattern_guards)]</code></p>



<a name="148745683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745683">(Nov 28 2018 at 21:36)</a>:</h4>
<p>Or am I missing that attribute..</p>



<a name="148745692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745692">(Nov 28 2018 at 21:37)</a>:</h4>
<p>Yeah, as soon as I sent that it clicked.</p>



<a name="148745698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745698">(Nov 28 2018 at 21:37)</a>:</h4>
<p><span class="emoji emoji-1f926" title="face palm">:face_palm:</span></p>



<a name="148745720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745720">(Nov 28 2018 at 21:37)</a>:</h4>
<p>Hmm, how easy is it to generate a transmute in MIR?</p>



<a name="148745728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745728">(Nov 28 2018 at 21:37)</a>:</h4>
<p>oh we can just make it a <code>Cast</code></p>



<a name="148745737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745737">(Nov 28 2018 at 21:38)</a>:</h4>
<p>(that was my plan, anyway)</p>



<a name="148745785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745785">(Nov 28 2018 at 21:38)</a>:</h4>
<p>will that pass mir-typeck ?</p>



<a name="148745805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745805">(Nov 28 2018 at 21:38)</a>:</h4>
<p>I was expecting to add a new <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.CastKind.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.CastKind.html"><code>CastKind</code></a></p>



<a name="148745817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745817">(Nov 28 2018 at 21:38)</a>:</h4>
<p>for converting <code>&amp;&amp; T</code> to <code>&amp;&amp;mut T</code></p>



<a name="148745819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745819">(Nov 28 2018 at 21:38)</a>:</h4>
<p>ah</p>



<a name="148745832"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745832" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745832">(Nov 28 2018 at 21:39)</a>:</h4>
<p>we'd have to add support to mir typeck</p>



<a name="148745840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745840">(Nov 28 2018 at 21:39)</a>:</h4>
<p>but doesn't seem so hard</p>



<a name="148745848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745848">(Nov 28 2018 at 21:39)</a>:</h4>
<p>basically just equate the lifetimes and the type</p>



<a name="148745871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745871">(Nov 28 2018 at 21:39)</a>:</h4>
<p>I wouldn't want to <em>literally</em> invoke <code>transmute</code>, that'd be a pain</p>



<a name="148745880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745880">(Nov 28 2018 at 21:39)</a>:</h4>
<p>(and would hurt compilation time)</p>



<a name="148745967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148745967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148745967">(Nov 28 2018 at 21:40)</a>:</h4>
<p>Ah, OK. Still, that sounds like more work than I have time for.</p>



<a name="148746022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746022">(Nov 28 2018 at 21:42)</a>:</h4>
<p>it seems "not hard" but not <em>easy</em></p>



<a name="148746024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746024">(Nov 28 2018 at 21:42)</a>:</h4>
<blockquote>
<p>i.e., schedule a time to go over and rederive all the edge cases</p>
</blockquote>
<p>I don't know if this counts, but I did try to transcribe all of them into tests. Look in ui/issues/ and look for filenames that start with issue-27282</p>



<a name="148746069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746069">(Nov 28 2018 at 21:42)</a>:</h4>
<p>can we at least fix the travis error <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> in your PR and see what happens next?</p>



<a name="148746076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746076">(Nov 28 2018 at 21:42)</a>:</h4>
<p>that seems like the most immediate thing that needs to be done</p>



<a name="148746080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746080">(Nov 28 2018 at 21:42)</a>:</h4>
<p>Sure</p>



<a name="148746082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746082">(Nov 28 2018 at 21:42)</a>:</h4>
<p>also, we are ridiculously over time :)</p>



<a name="148746089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746089">(Nov 28 2018 at 21:42)</a>:</h4>
<p>we really have to reach a final decision on this ASAP, presumably tomorrow morning</p>



<a name="148746096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746096">(Nov 28 2018 at 21:42)</a>:</h4>
<p>so sorry for crashing your meeting :/</p>



<a name="148746114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746114">(Nov 28 2018 at 21:43)</a>:</h4>
<p>It had to be addressed</p>



<a name="148746117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746117">(Nov 28 2018 at 21:43)</a>:</h4>
<p>that's why I put it on the agenda</p>



<a name="148746141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746141">(Nov 28 2018 at 21:43)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span> just to be clear, though, another alternative here is that SB knows about 2PB and we make the "activation point" be a "thing", right?</p>



<a name="148746142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746142">(Nov 28 2018 at 21:43)</a>:</h4>
<p>and also big <span class="emoji emoji-2764" title="heart">:heart:</span> for actually seriously considering such a change so late in the process. whatever the outcome, it is much appreciated!</p>



<a name="148746147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746147">(Nov 28 2018 at 21:43)</a>:</h4>
<p>(even if we never actually reached that agenda item per se)</p>



<a name="148746149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746149">(Nov 28 2018 at 21:43)</a>:</h4>
<p>i.e., a <code>&amp;mut2</code> pushes something onto the stack that is more like "shared"</p>



<a name="148746192"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746192" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746192">(Nov 28 2018 at 21:44)</a>:</h4>
<p>and then the activation pushes the true mut on there</p>



<a name="148746206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746206">(Nov 28 2018 at 21:44)</a>:</h4>
<p>i.e., it's not necessarily a full-on-graph that is required</p>



<a name="148746219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746219">(Nov 28 2018 at 21:44)</a>:</h4>
<p>just that 2PB is more "known" to stacked borrows than you would like</p>



<a name="148746221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746221">(Nov 28 2018 at 21:44)</a>:</h4>
<p>well I think it might need a tree</p>



<a name="148746237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746237">(Nov 28 2018 at 21:44)</a>:</h4>
<p><span class="user-mention" data-user-id="126804">@Ariel Ben-Yehuda</span> has some examples with multiple outstanding 2PB</p>



<a name="148746259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746259">(Nov 28 2018 at 21:45)</a>:</h4>
<p>can you send me a link?</p>



<a name="148746272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746272">(Nov 28 2018 at 21:45)</a>:</h4>
<p>I'm sure you have already done so ...</p>



<a name="148746277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746277">(Nov 28 2018 at 21:45)</a>:</h4>
<p>I'm afraid <span class="user-mention" data-user-id="126804">@Ariel Ben-Yehuda</span> 's notebook in Rome doesn't have a URL</p>



<a name="148746284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746284">(Nov 28 2018 at 21:45)</a>:</h4>
<p>heh</p>



<a name="148746288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746288">(Nov 28 2018 at 21:45)</a>:</h4>
<p>ok, maybe they can transcribe them</p>



<a name="148746361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746361">(Nov 28 2018 at 21:46)</a>:</h4>
<p>I'd like to see an example at some point</p>



<a name="148746365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746365">(Nov 28 2018 at 21:46)</a>:</h4>
<p>roughly, it was</p>
<div class="codehilite"><pre><span></span>let tpb1 = &amp;2phase x;
let tpb2 = &amp;2phase x;
if condition { activate(tbp1) } else { activate (tbp2) }
</pre></div>



<a name="148746372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746372">(Nov 28 2018 at 21:46)</a>:</h4>
<p>that can't happen</p>



<a name="148746380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746380">(Nov 28 2018 at 21:46)</a>:</h4>
<p>well, with the current restrictive desugaring yes</p>



<a name="148746389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746389">(Nov 28 2018 at 21:46)</a>:</h4>
<p>but it is a rather natural question if you say "2pb isn't initially exclusive"</p>



<a name="148746415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746415">(Nov 28 2018 at 21:47)</a>:</h4>
<p>and remember that the model has to work in unsafe code</p>



<a name="148746422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746422">(Nov 28 2018 at 21:47)</a>:</h4>
<p>basically I am trying to figure out</p>



<a name="148746428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746428">(Nov 28 2018 at 21:47)</a>:</h4>
<p>even in that case, I guess</p>



<a name="148746433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746433">(Nov 28 2018 at 21:47)</a>:</h4>
<p>it seems like if we made the activations a real thing</p>



<a name="148746440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746440">(Nov 28 2018 at 21:47)</a>:</h4>
<p>and the borrow is then just effectively a shared borrow</p>



<a name="148746446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746446">(Nov 28 2018 at 21:47)</a>:</h4>
<p>that reminds me of <code>EndRegion</code>. in all the bad ways.</p>



<a name="148746450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746450">(Nov 28 2018 at 21:47)</a>:</h4>
<p>but the activation is what pushes the <code>&amp;mut</code></p>



<a name="148746494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746494">(Nov 28 2018 at 21:48)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">foo</span><span class="p">(</span><span class="n">_</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="n">_</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="p">()</span>: <span class="p">())</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">bar</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="n">foo</span><span class="p">(</span><span class="n">y</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">,</span><span class="w"> </span><span class="k">return</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="148746511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746511">(Nov 28 2018 at 21:48)</a>:</h4>
<p>wtf is that?^^</p>



<a name="148746520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746520">(Nov 28 2018 at 21:48)</a>:</h4>
<p>that seems fine to me</p>



<a name="148746536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746536">(Nov 28 2018 at 21:48)</a>:</h4>
<p>the aliasing never gets observed, no?</p>



<a name="148746614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746614">(Nov 28 2018 at 21:49)</a>:</h4>
<p>or is <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> 's point that this is not intuitive?</p>



<a name="148746678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746678">(Nov 28 2018 at 21:50)</a>:</h4>
<blockquote>
<p>that reminds me of <code>EndRegion</code>. in all the bad ways.</p>
</blockquote>
<p>it feels pretty different to me. The activation is a "real point" that we have to consider in the borrow checker anyway, and it corresponds to a single use.</p>



<a name="148746701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746701">(Nov 28 2018 at 21:50)</a>:</h4>
<p>Actually, never mind, it's fine.</p>



<a name="148746715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746715">(Nov 28 2018 at 21:50)</a>:</h4>
<p>(and also, I think the current impl of 2PB would still reject it .... )</p>



<a name="148746719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746719">(Nov 28 2018 at 21:50)</a>:</h4>
<p>in any case, i'm just trying to tease out exactly what we are committed to</p>



<a name="148746720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746720">(Nov 28 2018 at 21:50)</a>:</h4>
<p>if we wind up doing nothing</p>



<a name="148746730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746730">(Nov 28 2018 at 21:51)</a>:</h4>
<blockquote>
<p>(and also, I think the current impl of 2PB would still reject it .... )</p>
</blockquote>
<p>those are not even 2PB I don't think</p>



<a name="148746735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746735">(Nov 28 2018 at 21:51)</a>:</h4>
<p>It doesn't even need 2PB</p>



<a name="148746754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746754">(Nov 28 2018 at 21:51)</a>:</h4>
<p>but you could imagine such code being accepted for some plausible extension</p>



<a name="148746781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746781">(Nov 28 2018 at 21:51)</a>:</h4>
<p>The borrows end immediately</p>



<a name="148746830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746830">(Nov 28 2018 at 21:52)</a>:</h4>
<p>ah, heh :)</p>



<a name="148746836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746836">(Nov 28 2018 at 21:52)</a>:</h4>
<p>well we can "fix" that</p>



<a name="148746838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746838">(Nov 28 2018 at 21:52)</a>:</h4>
<blockquote>
<p>i'm just trying to tease out exactly what we are committed to<br>
if we wind up doing nothing</p>
</blockquote>
<p>well I dont yet have a model that can explain this. there might be a nice one, or at least nicer than trees. but I wont be able to complete this analysis in time.</p>



<a name="148746852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746852">(Nov 28 2018 at 21:52)</a>:</h4>
<p>basically I think the idea would be that <code>&amp;2phase</code> is a shared borrow</p>



<a name="148746860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746860">(Nov 28 2018 at 21:52)</a>:</h4>
<p>and an activation pushes an <code>&amp;mut</code> onto the stack</p>



<a name="148746865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746865">(Nov 28 2018 at 21:53)</a>:</h4>
<blockquote>
<p>basically I think the idea would be that <code>&amp;2phase</code> is a shared borrow</p>
</blockquote>
<p>or equivalent to</p>



<a name="148746869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746869">(Nov 28 2018 at 21:53)</a>:</h4>
<p>anyway I know that's not a real proposal and I'm sure it has flaws</p>



<a name="148746879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746879">(Nov 28 2018 at 21:53)</a>:</h4>
<p>I just had an idea based on what you said (make the two-phase borrows be shared borrows that also remember in their tag the mutable morrow they were created one, and do a mutable reborrow on the first write) -- but whether and how that would work out, no idea (I foresee some conflicts with the "redundant reborrow" rule)</p>



<a name="148746887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746887">(Nov 28 2018 at 21:53)</a>:</h4>
<p>but the <em>currently implemented variant</em> of 2PB, which is fairly restictive in that it requires a postdominating use etc, isn't that expressive</p>



<a name="148746895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746895">(Nov 28 2018 at 21:53)</a>:</h4>
<p>okay I really have to go like right now because of <span class="emoji emoji-1f476" title="baby">:baby:</span> <span class="emoji emoji-1f37c" title="baby bottle">:baby_bottle:</span> <span class="emoji emoji-23f0" title="alarm clock">:alarm_clock:</span></p>



<a name="148746900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746900">(Nov 28 2018 at 21:53)</a>:</h4>
<p>I gotta go too :)</p>



<a name="148746901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746901">(Nov 28 2018 at 21:53)</a>:</h4>
<p>bye all</p>



<a name="148746905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746905">(Nov 28 2018 at 21:54)</a>:</h4>
<p>illuminating y'all</p>



<a name="148746965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746965">(Nov 28 2018 at 21:54)</a>:</h4>
<p>sure would've been nice to be "illuminated" a month ago but oh well <span class="emoji emoji-1f61d" title="stuck out tongue">:stuck_out_tongue:</span></p>



<a name="148746984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148746984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148746984">(Nov 28 2018 at 21:54)</a>:</h4>
<p>yeah in hindsight it's so easy to assign priorities...^^</p>



<a name="148747041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/weekly%20meeting%20November%2028/near/148747041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/weekly.20meeting.20November.2028.html#148747041">(Nov 28 2018 at 21:56)</a>:</h4>
<p>Apart from matches, 2PB is incredibly minimal. The activation is the next and only use (excluding StorageLive/Dead) of the mutable reference created by the 2PB.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>